package com.briup.day16;

import java.io.*;

/**
 * @author 谭梦寻
 * @version 1.1
 * 转换流
 * 1 可以将字节流转换成字符流 为了方便读一行数据或者写一行数据（文本文件）
 * 2 但如果涉及到编码格式的不同 转换流转换过程中可以指定对应的编码格式
 */
public class TestChange {
//    阅读文章方法 in 包含其实就是文本文件
    public void readArticle(InputStream in) throws IOException {
//        实现每次输出文章的一行内容
//        int data = in.read();
//        编写代码 实现将字节输入流转换成字符输入流 new InputStreamReader(in,"gbk");
        InputStreamReader isr = new InputStreamReader(in);//字符输入流
        BufferedReader br = new BufferedReader(isr);
        String line = null;
        while ((line = br.readLine()) != null) {
//            PrintStream 流的写操作
            System.out.println(line);
        }
//        关闭流
        br.close();
//        下面来那个航可以不用写
//        isr.close();
//        in.close();

    }
//    写多行数据表示文章内容
    public void writeArticle(OutputStream out) throws IOException {
//        写的数据 一行的特点
        OutputStreamWriter osw = new OutputStreamWriter(out);
        BufferedWriter bw = new BufferedWriter(osw);
        for (int i = 0; i < 5; i++) {
            bw.write("第"+i+"行");
            bw.newLine();
        }
//        关闭流
        bw.close();


//        PrintStream ps = new PrintStream(out);
//        ps.println("第一行");
//        ps.close();
//        out.close();
    }
//    如果在控制台看到的是乱码 解码不同
    public static void main(String[] args) throws IOException {
        TestChange t = new TestChange();
        FileInputStream fis = new FileInputStream("a.txt");
        FileOutputStream fos = new FileOutputStream("num1.txt");
        t.readArticle(fis);
        t.writeArticle(fos);
    }
}
